﻿Public Class xtf_ABMarticulocomposicionmaquinariatarea
    Public obj_articulocomposicionmaquinariatarea As cls_articulocomposicionmaquinariatarea_ = Nothing
    Private col_ControlesValidar As List(Of Control)

    Public Sub New()
        InitializeComponent()
        CargarSegunProduccion()
        CargarSegunValor()
        Me.Text = "Composicion Proceso Maquinaria - Nuevo"
        obj_articulocomposicionmaquinariatarea = New cls_articulocomposicionmaquinariatarea_
        AgregarValidacionesGlobal(Me, Me.lac_general, col_ControlesValidar)
        cbo_TipoSegunProduccion.SelectedIndex = 0
    End Sub

    Private Sub CargarSegunValor()
        cbo_TipoSegunValor.Properties.Items.Clear()
        For Each tipocosto As cls_articulocomposicionmaquinariatarea_.enu_segunvalor In [Enum].GetValues(GetType(cls_articulocomposicionmaquinariatarea_.enu_segunvalor))
            cbo_TipoSegunValor.Properties.Items.Add(EnumDescription(tipocosto))
        Next
        cbo_TipoSegunValor.SelectedIndex = 0
    End Sub

    Private Sub CargarSegunProduccion()
        cbo_TipoSegunProduccion.Properties.Items.Clear()
        For Each tipocosto As cls_articulocomposicionmaquinariatarea_.enu_segunproduccion In [Enum].GetValues(GetType(cls_articulocomposicionmaquinariatarea_.enu_segunproduccion))
            cbo_TipoSegunProduccion.Properties.Items.Add(EnumDescription(tipocosto))
        Next
        cbo_TipoSegunProduccion.SelectedIndex = 0
    End Sub

    Public Sub Modificar(ByRef articulocomposicionmaquinariatarea As cls_articulocomposicionmaquinariatarea_)
        If IsNothing(obj_articulocomposicionmaquinariatarea) Then
            obj_articulocomposicionmaquinariatarea = New cls_articulocomposicionmaquinariatarea_
        End If
        obj_articulocomposicionmaquinariatarea = articulocomposicionmaquinariatarea

        Me.Text = "Composicion Proceso Maquinaria - " & obj_articulocomposicionmaquinariatarea.ToString

        txt_maquinariatarea.Text = obj_articulocomposicionmaquinariatarea.maquinariatarea.ToString
        txt_maquinariatarea.Tag = obj_articulocomposicionmaquinariatarea.maquinariatarea
        txt_Cantidad.Value = obj_articulocomposicionmaquinariatarea.cantidad
        'chk_SegunProduccion.Checked = obj_articulocomposicionmaquinariatarea.segunproduccion
        cbo_TipoSegunProduccion.SelectedIndex = obj_articulocomposicionmaquinariatarea.tiposegunproduccion


        txt_Valor.Text = obj_articulocomposicionmaquinariatarea.valor
        If Not IsNothing(obj_articulocomposicionmaquinariatarea.maquinaria) Then
            txt_maquinaria.Text = obj_articulocomposicionmaquinariatarea.maquinaria.ToString
            txt_maquinaria.Tag = obj_articulocomposicionmaquinariatarea.maquinaria
        End If
        If obj_articulocomposicionmaquinariatarea.tiposegunvalor = cls_articulocomposicionmaquinariatarea_.enu_segunvalor.fijo Then
            cbo_TipoSegunValor.SelectedIndex = 0
        Else
            cbo_TipoSegunValor.SelectedIndex = obj_articulocomposicionmaquinariatarea.tiposegunvalor
        End If

        'lbl_moneda.Text = obj_articulocomposicionmaquinariatarea.articulo.

        obj_articulocomposicionmaquinariatarea.maquinariatarea = Nothing
        obj_articulocomposicionmaquinariatarea.articuloprimario = Nothing
        obj_articulocomposicionmaquinariatarea.maquinaria = Nothing

    End Sub

    Public Function ComprobarDatos() As Boolean
        If Not ControlarValidacionesGlobal(col_ControlesValidar) Then
            ErrManagerShow("000004", Me)
            Return False
        End If
        Return True
    End Function

    Private Sub btn_Guardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Guardar.Click
        If ComprobarDatos() Then

            obj_articulocomposicionmaquinariatarea.idmaquinariatarea = CType(txt_maquinariatarea.Tag, cls_maquinariatarea_).idmaquinariatarea

            obj_articulocomposicionmaquinariatarea.cantidad(CDec(txt_Cantidad.Value))
            'obj_articulocomposicionmaquinariatarea.segunproduccion = chk_SegunProduccion.Checked
            obj_articulocomposicionmaquinariatarea.tiposegunproduccion = cbo_TipoSegunProduccion.SelectedIndex

            obj_articulocomposicionmaquinariatarea.valor(CDec(txt_Valor.Text))
            If cbo_TipoSegunValor.SelectedIndex = 0 Then
                obj_articulocomposicionmaquinariatarea.tiposegunvalor = 0
            Else
                obj_articulocomposicionmaquinariatarea.tiposegunvalor = cbo_TipoSegunValor.SelectedIndex
            End If
            If Not IsNothing(txt_maquinaria.Tag) Then
                obj_articulocomposicionmaquinariatarea.idmaquinaria = CType(txt_maquinaria.Tag, cls_maquinaria_).idmaquinaria
            End If


            Me.DialogResult = Windows.Forms.DialogResult.OK
        End If
    End Sub

    Private Sub btn_Cerrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Cerrar.Click
        Me.DialogResult = Windows.Forms.DialogResult.Cancel
    End Sub

    Private Sub txt_articulo_ButtonClick(ByVal sender As Object, ByVal e As DevExpress.XtraEditors.Controls.ButtonPressedEventArgs) Handles txt_maquinariatarea.ButtonClick
        Dim buscar As xtf_buscardor
        Dim maquinariatarea_ As New cls_maquinariatarea_
        maquinariatarea_.CargarTodos()
        buscar = New xtf_buscardor("Procesos Maquinaria", maquinariatarea_, {"nombre|Nombre", "descripcion|Descripcion"})
        If buscar.ShowDialog() = Windows.Forms.DialogResult.OK Then
            txt_maquinariatarea.Text = buscar.obj_resultado.ToString
            txt_maquinariatarea.Tag = buscar.obj_resultado
            obj_articulocomposicionmaquinariatarea.idmaquinariatarea = CType(txt_maquinariatarea.Tag, cls_maquinariatarea_).idmaquinariatarea
        End If
    End Sub

    Private Sub cbo_TipoSegunProduccion_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbo_TipoSegunProduccion.SelectedIndexChanged
        txt_Cantidad.Enabled = False
        Select Case cbo_TipoSegunProduccion.SelectedIndex
            Case cls_articulocomposicionmaquinariatarea_.enu_segunproduccion.fijo
                txt_Cantidad.Value = 0
                txt_Cantidad.Enabled = True
            Case Else
                txt_Cantidad.Value = obj_articulocomposicionmaquinariatarea.cantidad(CType(cbo_TipoSegunProduccion.SelectedIndex, cls_articulocomposicionmaquinariatarea_.enu_segunproduccion))
        End Select
    End Sub

    Private Sub cbo_TipoSegunValor_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbo_TipoSegunValor.SelectedIndexChanged
        If Not IsNothing(obj_articulocomposicionmaquinariatarea) Then
            cbo_TipoSegunProduccion.Enabled = True
            txt_Valor.Enabled = False
            txt_maquinaria.Enabled = False
            Select Case cbo_TipoSegunValor.SelectedIndex
                Case cls_articulocomposicionmaquinariatarea_.enu_segunvalor.fijo
                    txt_Valor.Enabled = True
                Case cls_articulocomposicionmaquinariatarea_.enu_segunvalor.proveedor
                    txt_maquinaria.Enabled = True
                    If Not IsNothing(txt_maquinaria.Tag) Then
                        txt_Valor.Text = obj_articulocomposicionmaquinariatarea.valor(CType(cbo_TipoSegunValor.SelectedIndex, cls_articulocomposicionmaquinariatarea_.enu_segunvalor), (CType(txt_maquinaria.Tag, cls_maquinaria_).idmaquinaria))
                    Else
                        txt_Valor.Text = 0
                    End If
                Case cls_articulocomposicionmaquinariatarea_.enu_segunvalor.proveedorUltimo
                    cbo_TipoSegunProduccion.SelectedIndex = 0
                    txt_Cantidad.Value = 1
                    cbo_TipoSegunProduccion.Enabled = False
                    txt_Cantidad.Enabled = False
                    txt_Valor.Text = obj_articulocomposicionmaquinariatarea.valor(CType(cbo_TipoSegunValor.SelectedIndex, cls_articulocomposicionmaquinariatarea_.enu_segunvalor), 0)
                Case Else
                    txt_Valor.Text = obj_articulocomposicionmaquinariatarea.valor(CType(cbo_TipoSegunValor.SelectedIndex, cls_articulocomposicionmaquinariatarea_.enu_segunvalor), 0)
            End Select
        End If
    End Sub

    Private Sub txt_maquinaria_ButtonClick(ByVal sender As Object, ByVal e As DevExpress.XtraEditors.Controls.ButtonPressedEventArgs) Handles txt_maquinaria.ButtonClick
        Dim buscar As xtf_buscardor
        Dim maquinaria_ As New cls_maquinaria_
        maquinaria_.CargarTodos()
        buscar = New xtf_buscardor("Maquinaria", maquinaria_, {"nombre|Nombre"})
        If buscar.ShowDialog() = Windows.Forms.DialogResult.OK Then
            txt_maquinaria.Text = buscar.obj_resultado.ToString
            txt_maquinaria.Tag = buscar.obj_resultado
            cbo_TipoSegunValor_SelectedIndexChanged(Nothing, Nothing)
        End If
    End Sub

    Private Sub btn_VerInformacion_Click(sender As System.Object, e As System.EventArgs) Handles btn_VerInformacion.Click
        Dim tmp_produccion As New cls_produccion_
        Select Case cbo_TipoSegunProduccion.SelectedIndex
            Case cls_articulocomposicionarticulo_.enu_segunvalor.fijo
            Case Else
                If tmp_produccion.Buscar(obj_articulocomposicionmaquinariatarea.ProduccionXCantidadXidmaquinariatarea()) = True Then
                    Dim tmp_ABMProduccion As New xtf_ABMproduccion
                    tmp_ABMProduccion.Modificar(tmp_produccion, Nothing, Nothing)
                    tmp_ABMProduccion.Show()
                End If
        End Select
    End Sub
End Class